Methods, systems, and media for providing a remote control interface

ABSTRACT

In accordance with some implementations of the disclosed subject matter, mechanisms for providing a remote control interface are provided. In some implementations, a method for providing a remote control interface is provided, the method comprising: receiving an image of a user input interface associated with a media playback device; identifying the user input interface from a plurality of user input interfaces based on image recognition; determining a code library associated with the identified user input interface; and transmitting the code library to a mobile device that provided the image of the user input interface, wherein the code library allows a mobile device to control the media playback device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/180,834, filed Jun. 13, 2016, which is a continuation of U.S. patentapplication Ser. No. 13/800,020, filed Mar. 13, 2013, each of which ishereby incorporated by reference herein in its entirety.

TECHNICAL FIELD

Methods, systems, and media for providing a remote control interface.

BACKGROUND

Programming a universal remote control may involve an overwhelmingnumber of steps. For example, a user may be required to know asignificant number of details about the device to be controlled, such asthe specific device manufacturer and the specific model. In anotherexample, the user may be required to point the original remote controlat the universal remote control and press a button on the originalremote control in order for the universal remote to receive and learnthe infrared signal for that button. In yet another example, the usermay be required to press the power button on the remote control untilthe device to be controlled is turned off while the remote controlcycles through various output signals associated different devices. Evenfurther, this programming process has to be repeated for each device tobe controlled by the universal remote control. As the number of devicesto be controlled continues to increase (e.g., a television, a set-topbox, a DVD player, a digital video recording device, an audio receiver,a home theater system, etc.), programing a universal remote control isoften a time-consuming experience.

Accordingly, it is desirable to provide methods, systems, and media forproviding a remote control interface.

SUMMARY

In accordance with various implementations of the disclosed subjectmatter, mechanisms for providing a remote control interface areprovided.

In accordance with some implementations of the disclosed subject matter,a method for providing a remote control interface is provided, themethod comprising: receiving, using one or more hardware processors, animage of a user input interface associated with a media playback device;identifying the user input interface from a plurality of user inputinterfaces based on image recognition; determining a code libraryassociated with the identified user input interface; and transmittingthe code library to a mobile device that provided the image of the userinput interface, wherein the code library allows a mobile device tocontrol the media playback device.

In accordance with some implementations of the disclosed subject matter,a system for providing a remote control interface is provided. Thesystem comprising a hardware processor, wherein the hardware processoris configured to: receive an image of a user input interface associatedwith a media playback device; identify the user input interface from aplurality of user input interfaces based on image recognition; determinea code library associated with the identified user input interface; andtransmit the code library to a mobile device that provided the image ofthe user input interface, wherein the code library allows a mobiledevice to control the media playback device.

In accordance with some implementations of the disclosed subject matter,a non-transitory computer-readable medium containing computer-executableinstructions that, when executed by a processor, cause the processor toperform a method for providing a remote control interface, is provided.The method comprises: receiving an image of a user input interfaceassociated with a media playback device; identifying the user inputinterface from a plurality of user input interfaces based on imagerecognition; determining a code library associated with the identifieduser input interface; and transmitting the code library to a mobiledevice that provided the image of the user input interface, wherein thecode library allows a mobile device to control the media playbackdevice.

In accordance with some implementations of the disclosed subject matter,a system for providing a remote control interface is provided. Thesystem comprising: means for receiving an image of a user inputinterface associated with a media playback device; means for identifyingthe user input interface from a plurality of user input interfaces basedon image recognition; means for determining a code library associatedwith the identified user input interface; and means for transmitting thecode library to a mobile device that provided the image of the userinput interface, wherein the code library allows a mobile device tocontrol the media playback device.

In some implementations, the user input interface is a remote controland wherein the media playback device is at least one of a television, aset-top box, a DVD player, a digital video recorder, a gaming device,and a home theater system.

In some implementations, the code library is an infrared code library.

In some implementations, the system further comprises means forselecting a user input interface layout to be displayed on the mobiledevice.

In some implementations, the system further comprises means forselecting between a first user input interface layout that is generatedbased on the image of the user input interface and a second user inputinterface layout that is generated based on a predetermined user inputinterface layout.

In some implementations, the system further comprises means forgenerating the first user input interface layout by modifying thereceived image of the user input interface and mapping the code libraryto portions of the modified image.

In some implementations, the system further comprises means fortransmitting the user input interface layout to the mobile device thatprovided the image of the user input interface and transmitting the codelibrary to an external media device for controlling the media playbackdevice.

In some implementations, guidance data is provided with the user inputinterface layout.

In some implementations, the system further comprises means for usingoptical character recognition to identify text portions of the image ofthe user input interface.

In some implementations, the system further comprises: means forreceiving a second image of a second user input interface associatedwith a second media playback device; means for identifying the userinput interface from a plurality of user input interfaces based on imagerecognition; means for determining a second code library associated withthe second user input interface; and means for transmitting the codelibrary associated with the user input interface and the second codelibrary associated with the second user input interface, wherein aninterface on the mobile device uses the code library and the second codelibrary to control the media playback device and the second mediaplayback device.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, features, and advantages of the present invention canbe more fully appreciated with reference to the following detaileddescription of the invention when considered in connection with thefollowing drawing, in which like reference numerals identify likeelements.

FIG. 1 is a flow chart of an illustrative process for generating a userinput interface on a mobile device that controls a media playback devicein response to receiving an image of the user input interface inaccordance with some implementations of the disclosed subject matter.

FIG. 2 is a is a flow chart of an illustrative process for selecting auser input interface layout that can be displayed on a mobile device inaccordance with some implementations of the disclosed subject matter.

FIG. 3 is an example of a display screen presented on a mobile devicethat includes a generated user input interface for controlling a mediaplayback device in accordance with some implementations of the disclosedsubject matter.

FIG. 4 is an example of a display screen presented on a mobile devicethat includes a generated user input interface having a predetermineduser input interface layout in accordance with some implementations ofthe disclosed subject matter.

FIG. 5 is a generalized schematic diagram of an illustrative system forgenerating a user input interface on a mobile device that controls amedia playback device in response to receiving an image of the userinput interface in accordance with some implementations of the disclosedsubject matter.

FIG. 6 is a generalized schematic diagram of an illustrative system forgenerating a user input interface on a mobile device that controls amedia playback device in response to receiving an image of the userinput interface in accordance with some implementations of the disclosedsubject matter.

FIG. 7 is a generalized schematic diagram of an illustrative systemsuitable for implementation of the user input interface application inaccordance with some implementations of the disclosed subject matter.

FIG. 8 is a generalized schematic diagram of an illustrative mobiledevice and server as provided, for example, in FIG. 7 in accordance withsome implementations of the disclosed subject matter.

DETAILED DESCRIPTION

In accordance with some implementations of the disclosed subject matter,mechanisms for providing a remote control interface are provided.

These mechanisms can include receiving an image of a user inputinterface (e.g., a remote control, a keyboard, a touchpad, a computermouse, etc.), where the user input interface is associated with a mediaplayback device (e.g., a television, a set top box, a DVD player, adigital video recorder, a gaming device, a home theater system, etc.).For example, a user can launch a user input interface application on amobile device and the user input interface application can request thatthe user capture an image of a user input interface, such as a remotecontrol (or a portion of the remote control). Using the mobile device(e.g., a mobile telephone having a camera, a tablet computing devicehaving a camera, a mobile device having a front facing camera and/or arear facing camera, etc.), the user can capture an image of the userinput interface. In some implementations, the user input interfaceapplication can transmit the captured image to a suitable server foridentification. For example, the server can compare the captured imageto stored examples of various user input interfaces, or to examples ofuser input interfaces found on a network, such as the Internet.

In some implementations, in response to receiving the captured image ofthe user input interface at the server, the mechanisms can identify theuser input interface from among various examples of user inputinterfaces using any suitable image recognition techniques. For example,in some implementations, the mechanisms can use optical characterrecognition techniques, other suitable image recognition techniques,and/or any suitable combination thereof. For example, the mechanisms canmatch the captured image of the user input interface (e.g., a remotecontrol) with an image of an available user input interface.

In some implementations, the mechanisms can determine a code librarycorresponding to a media playback device associated with an identifieduser input interface. For example, the server can contain code librariesused by various user input interfaces to control a corresponding mediaplayback device. In another example, the server can retrieve a codelibrary upon identifying a user input interface. The mechanisms can thenmatch the captured image of the user input interface with one of thecode libraries based on the identified user input interface.

In response to determining a code library associated with the identifieduser input interface, the mechanisms can transmit the code library tothe mobile device that provided the image of the user input interface,where the mechanisms can allow the mobile device to control the mediaplayback device. For example, in response to receiving the code libraryof the identified user input interface, the mechanisms can allow theuser to control the media playback device using the user input interfaceapplication on the mobile device. In a more particular example, the userinput interface application executing on the mobile device can presentthe user with a user input interface that uses the code library tocontrol a media playback device.

In some implementations, the user can select the captured image of theuser input interface to be displayed on the mobile device as a graphicaluser interface for controlling one or more media playback devices.Additionally or alternatively, the user can select a predetermined userinput interface (e.g., a generic remote control interface) to bedisplayed on the mobile device as a graphical user interface forcontrolling one or more media playback devices.

These mechanisms can be used in a variety of applications. For example,these mechanisms can be used to automatically program a remote controlinterface that is presented on a mobile device. In another example,these mechanisms can be used to program a mobile device with variouscode libraries for controlling different media playback devices. In yetanother example, these mechanisms can be used to provide a universalremote control that organizes and stores graphical user interfaces thatcorrespond to the user input interfaces associated with one or moreusers and/or one or more media playback devices on a mobile device.

Turning to FIG. 1, a flow chart of an illustrative process 100 forgenerating a user input interface on a mobile device that controls amedia playback device in response to receiving an image of the userinput interface is shown in accordance with some implementations. Such agraphical user interface can be provided to a user, for example, tocontrol a media playback device.

Process 100 can begin by receiving an image of a user input interface,where the user input interface (e.g., a remote control, a keyboard, atouchpad, a computer mouse, a gaming controller, etc.) is associatedwith one or more media playback devices (e.g., television, set-top box,DVD player, home theater system, etc.) at 120. For example, a user canlaunch a user input interface application on a mobile device, where theuser input interface application can request that the user capture animage of a user input interface. Using the mobile device (e.g., a mobiletelephone having a camera, a tablet computing device having a camera, amobile device having a front facing camera and/or a rear facing camera,etc.), the user can capture an image of the user input interface withany suitable imaging device built into or connected to the mobiledevice. Alternatively, the user input interface application can receivean image of the user input interface that is stored on the mobile device(e.g., an image stored on the mobile device). In another suitableexample, the user input interface application can automatically launchan image capture application on the mobile device and request that theuser capture an image of the user input interface using the camera ofthe mobile device. These images can be stored in any suitable storagedevice (e.g., a memory connected to the mobile device).

In some implementations, in response to launching the user inputinterface application, a setup interface can be presented on the mobiledevice. The setup interface can request that the user use the camera ofthe mobile device to capture an image of the user input interface.Alternatively, the setup interface can request that the user select apreviously captured image of the user input interface. In someimplementations, the setup interface of the user input interfaceapplication can provide the user with additional options, such aswhether to present a program guide on the mobile device that isassociated with content selections made using the generated user inputinterface, whether to setup multiple user input interfaces (e.g., viamultiple captured images), etc. In such an example, a program guide orany other suitable content guidance data can be presented on the mobiledevice screen along with the generated user input interface.Alternatively, the user input interface application can provide the userwith an opportunity to switch between presenting the program guide onthe display screen of the mobile device and presenting the user inputinterface on the display screen of the mobile device.

Although the embodiments generally described herein relate to providinga remote control interface on a mobile device in response to capturingan image of the remote control, this is merely illustrative. Forexample, the user input interface can be a gaming controller thatcorresponds to a gaming console. The user input interface can be anysuitable user input interface, such as a remote control, a keyboard, atouchpad, a mobile phone, a gaming controller, and/or any other suitableuser input interface. It should also be noted that the media playbackdevice can be any suitable media playback device, such as a television,a smart television, a set-top box, a DVD player, a digital videorecorder, a home theater system, a speaker device, a gaming device, apersonal computer, a digital media receiver, a multimedia terminal,and/or any other suitable media playback device.

In some implementations, the user input interface application can causethe captured image of the user input interface to be transmitted to aserver or any other suitable system that is configured to identify theuser input interface (e.g., a particular remote control from a databaseof remote controls). In response to receiving the captured images of theuser input interface, the server can identify the user input interfacebased on various examples of user input interfaces by using any suitableimage recognition techniques at 130. For example, as described above,the user input interface can be identified using a Canny Edge Detectionapproach, a Scale Invariant Feature Transform (SIFT) approach, or anyother suitable image recognition algorithm. In some implementations, theserver can identify the particular user input interface of the capturedimage of the user input interface with a user input interface available(or that has been available) in the marketplace. For example, the servercan identify a remote control associated with a particular televisionbased on the remote controls or other control devices available in themarketplace. As another example, the server can identify a remotecontrol associated with a DVD player. As yet another example, the userinput interface can be identified based on optical characterrecognition. In this example, the server executing the user inputinterface application can perform an optical character recognition onthe captured image to determine the text layout of the keys on the userinput interface and compare the text layout with text layouts associatedwith known user input interfaces. It should be noted that any suitableimage recognition technique can be used.

In some implementations, in response to identifying a user inputinterface that is associated with more than one media playback device(e.g., remote controls with similar appearances that are associated withtwo or more different devices), the server can identify multiple mediaplayback devices that may be associated with the user input interface.For example, the server can create a list of the media playback devicesassociated with the user input interface. Additionally, the user inputinterface application can prompt the user to select a media playbackdevice from the list of media playback devices that is associated withthe captured image of the user input interface. For example, the userinput interface application can provide the user with images associatedwith the media playback devices to be controlled and request that theuser select the image that matches the media playback device.Alternatively, the server can select a media playback device based oninformation received from the user in the setup interface (e.g., themedia playback device having a high likelihood based on user inputs).

Similarly, in some implementations, the server can identify multipleuser input interfaces that may be associated with the captured image. Inresponse, the server can create a list of the multiple user inputinterfaces that match the captured image. For example, the user inputinterface application can provide the user with images associated withthe multiple user input interfaces and request that the user select theimage that matches the user input interface.

At 140, a code library (or code libraries) associated with theidentified user input interface can be determined. For example, theserver can transmit a query to a database of infrared code libraries.The query can include the user input interface identified from thecapture image and/or other suitable information (e.g., product type,model number, etc.) and, in response to the query, the server canreceive an infrared code library associated with the identified userinput interface. In some implementations, the server can store one ormore code libraries that correspond to various user input interfaces. Itshould be noted that each user input interface (e.g., remote control)can have a corresponding code library, which can include one or morecodes used to control a media playback device. It should also be notedthat some user input interfaces can share a code library, while someuser input interfaces can be associated with a generic code library.

In a more particular implementation, the code library can includemultiple infrared code sequences that can be used to control a mediaplayback device. For example, each infrared code sequence within thecode library can correspond to one button (e.g., a volume up button, achannel up button, a program guide button, a numeric button, etc.) ofthe user input interface. Additionally or alternatively, each codelibrary can include infrared code sequences corresponding to each of thebuttons of the user input interface.

At 150, the one or more code libraries determined at 140 can betransmitted to the mobile device that provided the image of the userinput interface. In some implementations, the user input interfaceapplication can be used to issue commands configured to control themedia playback device based on the code library. For example, asdescribed herein, in response to generating a user input interface onthe mobile device and receiving an indication that the user hasrequested to increase the volume of a media playback device (e.g.,pressing the up button on the display screen of the mobile device), theuser input interface application can instruct an infrared transmitterconnected to the mobile device to transmit the corresponding infraredcode to the media playback device.

In response to receiving the identified user input interface and theassociated code library, the mobile device can store the captured imageof the identified user input interface, the identified user inputinterface, and/or the code library associated with the identified userinput interface on the mobile device at 160. In some implementations,the captured image of the identified user input interface, theidentified user input interface, and/or the code library associated withthe identified user input interface can be stored in any suitablestorage device. In a more particular example, the captured image of theidentified user input interface, the identified user input interface,and/or the code library associated with identified user input interfacecan be stored in a memory of the mobile device (e.g., a flash memory,internal device memory, etc.). As another example, the captured image ofthe identified user input interface, the identified user inputinterface, and/or the code library associated with identified user inputinterface can be stored in a digital media receiver in communicationswith the mobile device.

In some implementations, process 100 can be repeated for additional userinput interfaces associated with other media playback devices. Forexample, in response to storing the captured image of the identifieduser input interface (e.g., a television remote control), the identifieduser input interface, and/or the code library associated with the userinput interface, a user can select to repeat process 100 with anotheruser input interface associated with another media playback device at170 (e.g., a gaming controller). This can, for example, allow the userto program a universal remote control interface that is presented on themobile device with multiple code libraries to control multiple mediaplayback devices (e.g., a television, a set-top box, a digital mediareceiver, a gaming console, etc.). Additionally or alternatively, thiscan also allow the user to program multiple remote control interfacesthat can be presented on the mobile device with the corresponding codelibrary to control one or more media playback devices (e.g., a remotecontrol interface for controlling the television and, upon receiving auser input to change remote controls, a remote control interface forcontrolling the gaming device).

In response to a user selecting to repeat process 100 with another userinput interface, the process 100 for generating a user input interfaceon a mobile device that controls a media playback device can be directedback to 110 in accordance with some implementations of the disclosedsubject matter. Alternatively, in response to the user not selecting torepeat process 100 with another user input interface, process 100 forgenerating a user input interface on a mobile device that controls amedia playback device in response to receiving an image of the userinput interface can end at 180.

FIG. 2 is a flow chart of an illustrative process 200 for selecting auser input interface layout (e.g. a graphical user interface) that canbe displayed on a mobile device in accordance with some implementationsof the disclosed subject matter.

Process 200 can begin by receiving a user selection of a user inputinterface layout to be displayed on a mobile device at 220. For example,the user can select to use the captured image of a user input interface(e.g., a remote control, a keyboard, a touchpad, a computer mouse, etc.)for a media playback device (e.g., a television, a set top box, a DVDplayer, a digital video recorder, a home theater system, etc.) to bedisplayed on the mobile device (e.g., a mobile telephone having acamera, a tablet computing device having a camera, a mobile devicehaving a front facing camera and/or a rear facing camera, etc.). Asanother example, the user can select a predefined user input interfacelayout. An illustrative example of such a predefined user inputinterface layout is shown in FIG. 4.

In response to receiving a user selection to use the captured image ofthe user input interface as the interface layout to be displayed on themobile device (“YES” at 220), the user input interface application canrotate the captured image of the user input interface to be verticalwith respect to the mobile device at 230. In a more particular example,as shown in mobile device 300 of FIG. 3, the user input interfaceapplication can rotate the captured image of a user input interface 320such that user input interface 320 is aligned with display 310. Forexample, the image of user input interface 320 can be aligned so thatthe top of the user input interface corresponds to a location of atransmitter for issuing commands from mobile device 300 to a mediaplayback device.

At 240, the user input interface application can crop the captured imageof the user input interface. For example, the user input interfaceapplication can remove any unnecessary negative space surrounding theimage of the user input interface. In a more particular example, asshown in mobile device 300 of FIG. 3, the user input interfaceapplication can crop the area of the captured image surrounding theimage of user input interface 320, leaving the image of user inputinterface 320 to be displayed on the display screen. It should be notedthat any suitable image modification can be performed on the capturedimage (e.g., zooming in on a particular area of the captured image,sharpening at least a portion of the captured image, aligning thecaptured image, etc.).

At 250, the user input interface application can identify the locationand/or text of buttons (e.g., volume buttons, channel buttons, etc.) inthe image of the user input interface using any suitable imagerecognition techniques, such as optical character recognition techniquesand/or any other suitable image recognition techniques. In a moreparticular example, as shown in mobile device 300 of FIG. 3, the userinput interface application can use optical character recognitiontechniques to identify the text of the volume buttons 330 of thecaptured image of the user input interface (e.g., a “VOL+” button).Additionally or alternatively, the user input interface application canuse image recognition techniques to determine the shapes of the buttonson the remote control (e.g., identify the up arrow and the down arrow ofthe volume buttons 330 of the captured image of the user inputinterface). Moreover, any suitable combination of optical characterrecognition and other image recognition techniques can be used toidentify the text and/or shape of each button of the captured image ofthe user input interface. In some implementations, the user inputinterface application can determine a function for each button of theuser input interface and can associate the function with the location ofthe button. For example, channel up/down, volume buttons, numbers, etc.,can be matched to locations of the buttons in user input interface 320.If a function cannot be determined for a particular button, the userinput interface application can disable the button (e.g., by shading thebutton in user input interface 320) or present a list of possiblefunctions for selection by a user.

At 260, in response to identifying the location and/or the text of thebuttons of the captured image of the user input interface, the userinput interface application can store the captured image of the userinput interface and the location and text of the buttons of the capturedimage of the user input interface on the mobile device. The identifiedlocation and text of the buttons of the captured image of the userinterface can be stored in any suitable storage device.

At 270, the user input interface application can display the capturedimage of the user input interface on the display screen of the mobiledevice. In a more particular example, as shown in mobile device 300 ofFIG. 3, the user input interface 320 can be displayed on display 310 torepresent the original user input interface. In some implementations, inresponse to detecting that the user has selected a button or option onthe displayed user input interface, the user input interface applicationcan use the associated code library to determine which code sequence(e.g., a particular infrared code sequence) to transmit to the mediaplayback device. In a more particular implementation, the instructionsfrom the determined code library can be mapped to the buttons and otherinterface features on the user input interface layout (e.g., map aparticular sequence of infrared codes to transmit in response toselecting a button on the displayed user input interface).Alternatively, as described herein, in response to detecting that theuser has selected a button on the displayed user input interface,instructions can be transmitted to another device (e.g., a digital mediareceiver having an infrared transmitter), where that device uses theassociated code library to transmits a particular code sequence to theappropriate media playback device.

In some implementations, the user input interface application candisplay additional information concurrently with the image of the userinput interface on the mobile device. For example, the user inputinterface application can display a program guide or any other suitableguidance information along with the image of the user input interface onthe mobile device. In a more particular example, in response toreceiving a user input on the image of the user input interface (e.g., auser selection of the channel up button), the user input interfaceapplication can display channel information, program listings associatedwith the selected channel, content information relating to the programbeing provided by the selected channel, detailed content information(e.g., program title, actor information, original airdate, rating,etc.), etc. In another more particular example, the user input interfacecan display the program guide or any other suitable guidance informationalong with the image of the user input interface on the mobile device inresponse to receiving a particular user selection (e.g., pressing a“GUIDE” button on image 320).

In some implementations, the user input interface application canprovide the user with options for displaying additional information. Forexample, the user input interface application can display a selectableoption that, when selected, causes a program guide or any other suitableguidance information to be displayed on screen 310 of the mobile device.The program guide or any other suitable guidance information can bedisplayed along with the image of the user input interface on the mobiledevice. Alternatively, the program guide or any other suitable guidanceinformation can occupy screen 310 of the mobile device. In such anexample, the user input interface application can allow the user toalternate between displaying image 320 of the user input interface anddisplaying a program guide or guidance information (e.g., where the usercan use a sliding gesture on screen 310 to switch between the user inputinterface and the program guide).

In some implementations, as described above, the user input interfaceapplication can allow the user to configure multiple user inputinterfaces by submitting multiple images. In some implementations, theoptions for displaying additional information can include options forswitching between multiple user input interfaces. For example, inresponse to setting up a universal remote control that controls atelevision device and a set-top box, and a gaming controller thatcontrols a gaming console, the user input interface application canprovide multiple user input interfaces and allow the user to alternatebetween displaying the universal remote control and the gamingcontroller on the mobile device. In another example, in response tosetting up a universal remote control that controls a television devicein one location (e.g., media playback devices in a living roomenvironment) and a universal remote control that controls a televisiondevice in a second location (e.g., media playback devices in a bedroomenvironment), the user input interface application can provide multipleuser input interfaces (e.g., each corresponding to a media playbackdevice at a particular location) and allow the user to alternate ortoggle between the multiple universal remote controls.

Alternatively, in response to not receiving a user selection of acaptured image as an interface layout (“NO” at 220), the user can selecta predefined user input interface layout at 280. For example, the userinput interface application can include one or more predefined userinput interface layouts in any suitable storage device. Moreparticularly, the user can select from the one or more predefined userinput interface layouts, such as a universal remote control interfacefor controlling multiple media playback devices, remote controlinterfaces having different button layouts, remote control interfaceshaving different themes, etc. In another example, the captured image ofthe user input interface can include more buttons than the user desires(e.g., more buttons than the user typically uses). In yet anotherexample, the user may be unable to capture an image of the user inputinterface. In such examples, the user can select a predefined user inputinterface layout having a particular number of buttons (e.g., volumebuttons, channel buttons, power buttons, etc.). It should be noted thatdisplaying fewer buttons on a screen of the mobile device can, forexample, allow the buttons of the user input interface to be displayedat a larger size and/or allow other content to be displayed with theuser input interface (e.g., a program guide, content information,options for switching between multiple user input interfaces, etc.).

In response to selecting a predefined user input interface layout at280, the user input interface application can display the predefineduser input interface layout on the mobile device at 290. In a moreparticular example, as shown in mobile device 400 of FIG. 4, apredefined user input interface layout 420 can be displayed on display410. As described above, the user input interface application, theserver, or any other suitable component can map the functions and/orcodes to the buttons on the predefined user input interface layout(e.g., particular infrared codes to transmit in response to selecting anincrease volume button on the particular layout).

FIG. 5 shows a generalized schematic diagram of an illustrative system500 on which process 100 for generating a user input interface on amobile device that controls a media playback device in response toreceiving an image of the user input interface in accordance with someimplementations of the disclosed subject matter. As illustrated, system500 can include media playback devices 502, a mobile device 504, and aserver 512.

As shown in FIG. 5, system 500 can include one or more media playbackdevices 502. Media playback device 502 can include any device forpresenting media content and/or obtaining and presenting media contentitems from various sources, etc. For example, a media playback devicecan be implemented as a television, a smart television, a set-top box, aDVD player, a digital video recorder, a home theater system, a speakerdevice, a gaming console, a personal computer, a multimedia terminal,etc.

In some implementations, media playback device 502 can include a storagedevice, such as a hard drive, a solid state storage device, a removablestorage device, or any other suitable device for storing media content,media guidance information, etc.

Media playback devices 502 can be local to each other or remote fromeach other. For example, when one media playback device 502 is atelevision and another media playback device 502 is a set-top box, themedia playback devices 502 can be located in the same room.

In some implementations, mobile device 504 can include, among otherthings, an imaging device 506, a user input interface application 508,and a transmitter 510. Imaging device 506 can be built-in to mobiledevice 504 or external to mobile device 504 (e.g., connected via aBluetooth connection). For example, imaging device 506 can be a cameraon a mobile device, such as a camera-enabled mobile device, a camera ofa tablet computing device, or any other suitable imaging device. Asanother example, the imaging device can be a camera connected to mobiledevice 504 using any suitable connection (e.g., a wired connection, awireless connection, etc.).

Transmitter 510 can be any suitable transmitter, such as an infraredtransmitter and/or any other suitable transmitter. Additionally,transmitter 510 can be built-in to mobile device 504 or external tomobile device 504. For example, transmitter 510 can be an externalinfrared transmitter that can be connected to mobile device 504 usingany suitable connection, such as using an audio jack of mobile device504, a wired connection, a wireless connection, and/or any othersuitable connection techniques.

In some implementations, imaging device 506 of mobile device 504 cancapture an image of a user input interface (e.g., a remote control, akeyboard, a touchpad, a computer mouse, etc.), where the user inputinterface is associated with a particular media playback device 502(e.g., a television, a set top box, a DVD player, a digital videorecorder, a home theater system, etc.). Such captured images can bestored in any suitable storage device.

In some implementations, mobile device 504 can transmit the capturedimage of the user input interface to server 512 via a communicationnetwork using any suitable techniques.

Server 512 can include an image recognition system 514 and a codelibrary database 516. Image recognition system 514 can include anysuitable image recognition techniques, as described above in connectionwith FIG. 1.

In response to receiving the captured image of the user input interface,server 512 can identify a user input interface in the received capturedimage of the user input interface using image recognition system 512. Insome implementations, server 512 can identify the particular user inputinterface in the captured image of the user input interface with a userinput interface available in the marketplace. For example, server 512can identify an image of a remote control in the captured image as aremote control associated with a particular television based on remotecontrols available in the marketplace. In another example, server 512can identify multiple remote controls that match the captured image andcan provide the user with images of the multiple remote controls forselection.

In some implementations, in response to identifying the user inputinterface contained in the received captured image, server 512 candetermine a code library associated with the identified user inputinterface. In some implementations, the server can contain multiple codelibraries corresponding to various user input interfaces available inthe marketplace at code library database 516. In some implementations,code library database 516 can be internal or external to server 512. Forexample, code library database 516 can contain code librariescorresponding to popular user input interfaces available in themarketplace. In another example, code library database 516 can contain acode library that was retrieved from a suitable data source in responseto identifying the user input interface in the captured image. In yetanother example, code library database 516 can be updated—e.g., inresponse to identifying a new user input interface, in response toretrieving a new code library from an external data source, in responseto receiving updated codes from a product manufacturer, etc.

It should be noted that the code libraries in code library database 516can be any suitable code library that can be used to issue commands tocontrol a media playback device 502 associated with the code libraryand/or any other suitable code library. For example, a code library incode library database 516 can include multiple infrared code sequencesthat can be used to control a media playback device 502. Each infraredcode sequence within the code library can correspond to one button (e.g.volume button, channel button, etc.) of the user input interface.Additionally or alternatively, each code library can include infraredcode sequences corresponding to each of the buttons of the user inputinterface.

In some implementations, in response to determining the code libraryassociated with the identified user input interface, server 512 cantransmit the identified user input interface and the associated codelibraries of the user input interface to mobile device 504.

In some implementations, mobile device 504 can store the captured imageof the user input interface, the identified user input interface, and/orthe code library associated with the user input interface. In such anembodiment, the captured image of the user input interface, theidentified user input interface, and/or the code library associated withthe user input interface can be stored in any suitable storage deviceinternal to mobile device 504 or external to mobile device 504.

FIG. 6 is a generalized schematic diagram of another illustrative systemfor generating a user input interface on a mobile device that controls amedia playback device in response to receiving an image of the userinput interface in accordance with some implementations of the disclosedsubject matter. As shown, system 600 can include a mobile device 504, aserver 512, and a media playback device 502.

In some implementations, in response to determining the code libraryassociated with the identified user input interface, the server 512 cantransmit the associated code library of the user input interface to themedia playback device 502 (e.g., a set-top box, a smart television,etc.). In a more particular implementation, the server 512 can determinethat the mobile device 504 does not have infrared transmissioncapabilities that the media playback device 502 has infraredtransmission capabilities. In response to such a determination, theserver 512 can transmit the code library to the media playback device502 and transmit the layout of the generated user input interface tomobile device 504. In response to presenting user input interface onmobile device 504 and in response to receiving a user input (e.g.,selecting a button), mobile device 504 can transmit instructions tomedia playback device 502 (e.g., a digital media receiver) using awireless link 602 (e.g., a Bluetooth connection, a Wi-Fi connection, an802.11(a), (b), (g), or (n) connection, etc.).

Media playback device 502 can then transmit instructions to an externalmedia playback device 604 (e.g., a television, a set-top box, etc.)using an infrared transmitter or any other suitable transmitter. Forexample, media playback device 502 can include a user input interfaceapplication 508 and a transmitter 510. It should be noted thattransmitter 510 can be built-in to media playback device 502 or externalto media playback device 502. Using transmitter 510, the instructionsfrom mobile device 504 can be directed to media playback device 604 inorder to control media playback device 604 (e.g., a television, a DVDplayer, a set-top box, etc.).

FIG. 7 shows a generalized schematic diagram of a system 700 on whichthe user input interface application can be implemented in accordancewith some implementations of the disclosed subject matter. As shown,media playback device 502 and mobile device 504 can be connected by oneor more communications links 702 to a communications network 704 that islinked via a communications link 706 to server 512.

In some implementations, communications network 704 can be any suitablecomputer network or combination of networks including the Internet, anintranet, a wide-area network (“WAN”), a local-area network (“LAN”), awireless network, a digital subscriber line (“DSL”) network, a framerelay network, an asynchronous transfer mode (“ATM”) network, a virtualprivate network (“VPN”), etc. Communications links 702 and 706 can beany communications links suitable for communicating data among mediaplayback device 502, mobile device 504, and server 512, such as networklinks, dial-up links, wireless links, hard-wired links, any othersuitable communications links, or any suitable combination of suchlinks. Mobile device 504 can enable a user to access features of theuser input interface application. Media play back device 502, mobiledevice 504, and server 512 can be located at any suitable location. Inone embodiment, media playback device 502, mobile device 504, and server512 can be located within an organization. Alternatively, media playbackdevice 502, mobile device 504, and server 512 can be distributed betweenmultiple organizations.

System 700 can include one or more servers 512. Server 512 can be anysuitable server for providing access to the user input interfaceapplication, such as a processor, a computer, a data processing device,or a combination of such devices. For example, the user input interfaceapplication can be distributed into multiple backend components andmultiple frontend components or interfaces. In a more particularexample, backend components, such as user input interface datadistribution can be performed on one or more servers 512. Similarly, thegraphical user interfaces displayed by the user input interfaceapplication, such as the graphical user interface for displaying a userinput interface used to control a media playback device, can bedistributed by one or more servers 512 to media playback device 502 ormobile device 504 via communication link 702.

FIG. 8 shows and example 800 of hardware that can be used to implementserver 512 and mobile device 504 depicted in FIG. 7 in accordance withsome implementations. Referring to FIG. 8, a mobile device 502 caninclude a processor 802, a display 804, an input device 806, and memory808, which can be interconnected. In some implementations, memory 808can contain a storage device for storing a computer program forcontrolling processor 802.

Processor 802 can use the computer program to present on display 804 theuser input interface application and the data received throughcommunications link 702 and commands and values transmitted by a user ofmobile device 504. It should be noted that data received throughcommunications link 704 or any other communications links can bereceived from any suitable source. Input device 806 can include acomputer keyboard, a mouse, a trackball, a keypad, a remote control, anyother suitable input device, or any suitable combination thereof.Additionally or alternatively, input device 806 can include a touchscreen display 804 that can receive input (e.g. using a finger, astylus, or the like).

Server 512 can include a processor 810, a display 812, an input device814, and a memory 816, which can be interconnected. In some embodiment,memory 816 can contain a storage device for storing data receivedthrough communications link 708 or through other links. In someimplementations, memory 816 can further contain a storage device forstoring a server program for controlling processor 810.

Processor 810 can use the computer program to present on display 812 auser input interface and/or the data received through communicationslink 706, and receive commands and values transmitted by mobile device504 and/or media playback device 502. It should be noted that datareceived through communications link 704 or any other communicationslinks can be received from any suitable source. Input device 814 caninclude a computer keyboard, a mouse, a trackball, a keypad, a remotecontrol, any other suitable input device, or any suitable combinationthereof. Additionally or alternatively, input device 814 can include atouch screen display 812 that can receive input (e.g., using a finger, astylus, or the like). the user may make contact with the touch screenusing any suitable object or appendage, such as a stylus, finger, etc.For example, an image of a user input interface can be displayed on thetouch screen of the mobile device and the user input interfaceapplication can respond to contact with the touch screen, such as one ormore taps on the touch screen, maintaining continuous contact with thetouch screen, movement of the point of contact while maintainingcontinuous contact, a breaking of the contact, or any combinationthereof.

In some implementations, the user input interface application caninclude an application program interface (not shown), and/or can beresident in memory 808 of mobile device 502 and/or memory 818 of server512. Additionally or alternatively, a graphical user interface (“GUI”)can be distributed to mobile device 502, which can allow a user tointeract with the user input interface application resident at, forexample, server 512.

It should be noted that in some implementations in addition to or inlieu of capturing an image of a user input interface, the user cancapture an image of the media playback device (e.g., a DVD player, atelevision, etc.) using the camera of a smartphone or an image of amodel number relating to the user input interface. In suchimplementations, the image of the media playback device or model numbercan be compared to similar images to identify a user input interfaceassociated with the media playback device or model number, respectively.

In some implementations, the user input interface application caninclude client-side software, hardware, or both. For example, the userinput interface application can encompass one or more Web-pages orWeb-page portions (e.g., via any suitable encoding, such as HyperTextMarkup Language (“HTML”), Dynamic HyperText Markup Language (“DHTML”),Extensible Markup Language (“XML”), JavaServer Pages (“JSP”), ActiveServer Pages (“ASP”), Cold Fusion, or any other suitable approaches). Asanother example, the user input interface application can encompass acomputer program that causes a processor to execute the user inputinterface application. In one particular embodiment, the one or moreapplications can include client-side software, server-side software,hardware, firmware, or any suitable combination thereof. For example,the application(s) can encompass a computer program written in aprogramming language recognizable by media playback device 502, mobiledevice 504, and/or server 512 that is executing the application(s)(e.g., a program written in a programming language, such as, Java, C,Objective-C, C++, C#, Javascript, Visual Basic, HTML, XML, ColdFusion,any other suitable approaches, or any suitable combination thereof).

Although the user input interface application is described herein asbeing implemented on a mobile device and/or server, this is onlyillustrative. The user input interface application can be implemented onany suitable platform (e.g., a personal computer (“PC”), a mainframecomputer, a dumb terminal, a data display, a two-way pager, a wirelessterminal, a portable telephone, a portable computer, a palmtop computer,an H/PC, an automobile PC, a laptop computer, a cellular phone, apersonal digital assistant (“PDA”), a combined cellular phone and PDA,etc.) to provide such features.

In some implementations, any suitable computer readable media can beused for storing instructions for performing the functions and/orprocesses described herein. For example, in some implementations,computer readable media can be transitory or non-transitory. Forexample, non-transitory computer readable media can include media suchas magnetic media (such as hard disks, floppy disks, etc.), opticalmedia (such as compact discs, digital video discs, Blu-ray discs, etc.),semiconductor media (such as flash memory, electrically programmableread only memory (EPROM), electrically erasable programmable read onlymemory (EEPROM), etc.), any suitable media that is not fleeting ordevoid of any semblance of permanence during transmission, and/or anysuitable tangible media. As another example, transitory computerreadable media can include signals on networks, in wires, conductors,optical fibers, circuits, any suitable media that is fleeting and devoidof any semblance of permanence during transmission, and/or any suitableintangible media.

Accordingly, methods, systems, and media for providing a remote controlinterface are provided.

Although the invention has been described and illustrated in theforegoing illustrative implementations, it is understood that thepresent disclosure has been made only by way of example, and thatnumerous changes in the details of implementation of the invention canbe made without departing from the spirit and scope of the invention,which is limited only by the claims that follow. Features of thedisclosed implementations can be combined and rearranged in variousways.

What is claimed is:
 1. A method for providing remote control interfaces,the method comprising: identifying, using a hardware processor, a userinput interface from a plurality of user input interfaces based on areceived image of a user input interface associated with a mediaplayback device from a mobile device, wherein the user input interfaceis configured to transmit first wireless signals to the media playbackdevice; transmitting, using the hardware processor, a representation ofthe identified user input interface to the mobile device; determining,using the hardware processor, network connection information indicatingthat the mobile device is configured to transmit second wireless signalsto the media playback device; and in response to determining that themobile device is connected to the media playback device via a wirelesscommunications network and in response to determining that the mobiledevice is configured to transmit the second wireless signals to themedia playback device over the wireless communications network that aredifferent than the first wireless signals, transmitting, using thehardware processor, a code library to the media playback device for usewith commands inputted into the representation of the identified userinput interface and received as the second wireless signals.
 2. Themethod of claim 1, further comprising determining the code libraryassociated with the identified user input interface, wherein portions ofthe code library are mapped to input interfaces in the representation ofthe identified user input interface.
 3. The method of claim 1, furthercomprising determining whether to transmit the code library to themobile device or an additional mobile device based on the networkconnection information indicating that the mobile device is configuredto transmit second wireless signals to the media playback device.
 4. Themethod of claim 1, wherein the code library is an infrared code library.5. The method of claim 1, further comprising: in response to receivingthe image of the user input interface, identifying a plurality of userinput interfaces based on the received image; and causing a plurality ofuser input interface representations corresponding to the plurality ofuser input interfaces to be presented on the mobile device for selectinga user input interface representation from the plurality of user inputinterface representations.
 6. The method of claim 5, wherein theplurality of user input interface representations includes a first userinput interface representation that is generated based on the receivedimage of the user input interface and a second user input interfacerepresentation that is generated based on a predetermined user inputinterface layout.
 7. The method of claim 6, further comprisinggenerating the first user input interface representation by modifyingthe received image of the user input interface and mapping the portionsof the code library to portions of the modified image.
 8. The method ofclaim 1, further comprising using optical character recognition toidentify text portions of the received image of the user inputinterface, wherein the identified text portions of the received imageare used to identify the user input interface.
 9. A method for providingremote control interfaces, the method comprising: identifying, using amobile device that includes a hardware processor, a user input interfacefrom a plurality of user input interfaces based on a captured image ofthe user input interface associated with a media playback device,wherein the user input interface is configured to transmit firstwireless signals to the media playback device over a wirelesscommunications network; causing, using the mobile device, arepresentation of the user input interface to be presented on the mobiledevice, wherein a code library associated with the identified user inputinterface is mapped to a plurality of interface elements in therepresentation of the user input interface; receiving, using the mobiledevice, an input to one or more of the plurality of interface elementsin the representation of the user input interface; and in response todetermining that the mobile device is configured to transmit secondwireless signals to the media playback device over the wirelesscommunications network that are different than the first wirelesssignals and in response to receiving the input to the one or more of theplurality of interface elements in the representation of the user inputinterface, transmitting, using the mobile device, instructions to themedia playback device over the wireless communications network in thesecond wireless signals, wherein the instructions include the input tothe one or more of the plurality of interface elements and correspondinginformation from the code library.
 10. The method of claim 9, furthercomprising: associating with the media playback device over the wirelesscommunications network; capturing the image of the user input interfaceassociated with the media playback device; and mapping the code libraryassociated with the identified user input interface to the plurality ofinterface elements in the representation of the user input interface inresponse to identifying the user input interface.
 11. The method ofclaim 9, further comprising transmitting the instructions to an externalmedia device that is configured to transmit the first wireless signals,thereby causing the mobile device to control the media playback devicevia the external media device.
 12. The method of claim 9, wherein thecode library is an infrared code library.
 13. The method of claim 9,further comprising: in response to capturing the image of the user inputinterface, receiving the plurality of user input interfaces thatcorrespond to the captured image; and causing a plurality of user inputinterface representations corresponding to the plurality of user inputinterfaces to be presented for selecting a user input interfacerepresentation from the plurality of user input interfacerepresentations.
 14. The method of claim 13, wherein the plurality ofuser input interface representations includes a first user inputinterface representation that is generated based on the captured imageof the user input interface and a second user input interfacerepresentation that is generated based on a predetermined user inputinterface layout.
 15. The method of claim 9, further comprising usingoptical character recognition to identify text portions of the capturedimage of the user input interface, wherein the identified text portionsof the captured image are used to identify the user input interface. 16.A system for providing remote control interfaces, the system comprising:a hardware processor that is configured to: identify a user inputinterface from a plurality of user input interfaces based on a receivedimage of a user input interface associated with a media playback devicefrom a mobile device, wherein the user input interface is configured totransmit first wireless signals to the media playback device; transmit arepresentation of the identified user input interface to the mobiledevice; determine network connection information indicating that themobile device is configured to transmit second wireless signals to themedia playback device; and in response to determining that the mobiledevice is connected to the media playback device via a wirelesscommunications network and in response to determining that the mobiledevice is configured to transmit the second wireless signals to themedia playback device over the wireless communications network that aredifferent than the first wireless signals, transmit a code library tothe media playback device for use with commands inputted into therepresentation of the identified user input interface and received asthe second wireless signals.
 17. The system of claim 16, wherein thehardware processor is further configured to determine the code libraryassociated with the identified user input interface, wherein portions ofthe code library are mapped to input interfaces in the representation ofthe identified user input interface.
 18. The system of claim 16, whereinthe hardware processor is further configured to determine whether totransmit the code library to the mobile device or an additional mobiledevice based on the network connection information indicating that themobile device is configured to transmit second wireless signals to themedia playback device.
 19. The system of claim 16, wherein the codelibrary is an infrared code library.
 20. The system of claim 16, whereinthe hardware processor is further configured to: in response toreceiving the image of the user input interface, identify a plurality ofuser input interfaces based on the received image; and cause a pluralityof user input interface representations corresponding to the pluralityof user input interfaces to be presented on the mobile device forselecting a user input interface representation from the plurality ofuser input interface representations.
 21. The system of claim 20,wherein the plurality of user input interface representations includes afirst user input interface representation that is generated based on thereceived image of the user input interface and a second user inputinterface representation that is generated based on a predetermined userinput interface layout.
 22. The system of claim 21, wherein the hardwareprocessor is further configured to generate the first user inputinterface representation by modifying the received image of the userinput interface and mapping the portions of the code library to portionsof the modified image.
 23. The system of claim 16, wherein the hardwareprocessor is further configured to use optical character recognition toidentify text portions of the received image of the user inputinterface, wherein the identified text portions of the received imageare used to identify the user input interface.